/*
 * @Author: zi.yang
 * @Date: 2021-10-03 16:30:15
 * @LastEditors: zi.yang
 * @LastEditTime: 2021-10-04 23:44:26
 * @Description: In User Settings Edit
 * @FilePath: \project-management\models\sys_dict_data.js
 */
const { DataTypes } = require('sequelize');
const moment = require('moment');
const db = require('./db');

const config = {
  id:{
    type:DataTypes.INTEGER,
    primaryKey:true,
    allowNull:false,
    autoIncrement:true
  },
  dictSort:{
    field:'dict_sort',
    type:DataTypes.INTEGER,
    allowNull:true,
    default:0
  },
  dictLabel:{
    field:'dict_label',
    type:DataTypes.STRING,
    allowNull:false
  },
  dictValue:{
    field:'dict_value',
    type:DataTypes.STRING,
    allowNull:false
  },
  dictType:{
    field:'dict_type',
    type:DataTypes.STRING,
    allowNull:false
  },
  status:{
    type:DataTypes.CHAR,
    allowNull:false,
    defaultValue:0
  },
  remark:{
    type:DataTypes.STRING,
    allowNull:true,
    defaultValue:''
  },
  createdAt:{
    field:'create_time',
    type:DataTypes.DATE,
    allowNull:false,
    get() {
      return moment(this.getDataValue('createdAt')).format(
        'YYYY-MM-DD HH:mm:ss'
      );
    },
    set(value) {
      this.setDataValue(
        'createdAt',
        moment(value).format('YYYY-MM-DD HH:mm:ss')
      );
    },
  },
  updatedAt:{
    field:'update_time',
    type:DataTypes.DATE,
    allowNull:false,
    get() {
      return moment(this.getDataValue('updatedAt')).format(
        'YYYY-MM-DD HH:mm:ss'
      );
    },
    set(value) {
      this.setDataValue(
        'updatedAt',
        moment(value).format('YYYY-MM-DD HH:mm:ss')
      );
    },
  }
};

// 定义模型属性
const Model = db.define('sys_dict_data', config, {
  timestamps: false,
  // 强制表名称等于模型名称
  freezeTableName: true,
});

module.exports = Model;
